// Copyright (c) 2014 Morten Bakkedal
// This code is published under the MIT License.

using System;
using System.Collections;
using System.Collections.Generic;

namespace FuncLib.DualFunctions.Collections.Generic
{
	public interface IReadOnlyDictionary<TKey, TValue> : IReadOnlyCollection<KeyValuePair<TKey, TValue>>
	{
		bool ContainsKey(TKey key);

		bool TryGetValue(TKey key, out TValue value);

		TValue this[TKey key]
		{
			get;
		}
		
		ICollection<TKey> Keys
		{
			get;
		}

		ICollection<TValue> Values
		{
			get;
		}
	}
}
